home *** CD-ROM | disk | FTP | other *** search
/ Isometric Game Programming with DirectX 7.0 / Isometric Game Programming.iso / directx / dxf / dxreadme.txt < prev    next >
Encoding:
Text File  |  2000-11-03  |  46.2 KB  |  980 lines

  1.  
  2. Microsoft« DirectX« 8.0 SDK 
  3.  
  4. This CD is the Microsoft DirectX 8.0 Software Development Kit (SDK).  
  5. It contains all DirectX software required to create DirectX 8.0 
  6. compliant applications.  Parts of this SDK will also be made 
  7. available for download at the Microsoft DirectX developer web page
  8. (http://msdn.microsoft.com/directx).
  9.  
  10. Major components include:  DirectX 8.0 system components (runtimes);
  11. DirectX 8.0 Application Programing Interface (API) Documentation for
  12. each of the DirectX core areas (written for C++ or Visual Basic 
  13. developers);  DirectX 8.0 headers & libraries;  Sample applications 
  14. and source code;  miscellaneous tools and utilities.
  15.  
  16. After installing, those new to DirectX should start with the 
  17. DirectX 8.0 documentation.  More seasoned developers may also want 
  18. to view the "WHAT'S NEW" section.  Professional DirectX developers 
  19. should refer to the "KNOWN ISSUES" section prior to raising concerns.
  20.  
  21. __________________________________________________________________
  22.  
  23.  
  24. Contents:
  25.  
  26. - INSTALLATION
  27. - WHAT'S NEW
  28. - CD LAYOUT
  29. - DIRECTX 8.0 SDK RELEASE NOTES AND KNOWN ISSUES 
  30. - COMPILER SUPPORT
  31.  
  32. __________________________________________________________________
  33.  
  34.  
  35. INSTALLATION:
  36.  
  37.  
  38. ALWAYS UNINSTALL PREVIOUS RELEASES of the DirectX SDK prior to 
  39. installing DirectX 8.0 SDK Release (see UnInstall).  The directory
  40. structure and file names have changed significantly.  Installing on
  41. top of a previous installation will cause you problems. 
  42.  
  43. On Windows 2000 systems, you must be logged in as administrator to
  44. install the DirectX 8.0 runtimes. 
  45.  
  46. If you install the BDA cab, the DirectX 8.0 setup program requires 
  47. that you restart your system.
  48.  
  49. UnInstall:
  50.  
  51. To uninstall, use "Add/Remove Programs" from the Control Panel to 
  52. uninstall the InstallShield installations.
  53.  
  54. __________________________________________________________________
  55.  
  56.  
  57. WHAT'S NEW:
  58.  
  59.  
  60. DirectX Audio (DirectSound & DirectMusic)
  61. =========================================
  62.  
  63. DirectX 8.0 audio covers both DirectSound and DirectMusic API's.  In 
  64. DirectX 8.0, these API's are more closely aligned and tied together.
  65.  
  66. There are many new features.  They include:
  67.  
  68.    Effects processing on DirectSound Buffers
  69.    DLS2 synthesis
  70.         Arbitrary loop points
  71.         Release waveforms
  72.         Optional Filter per voice
  73.         6-stage envelope
  74.         Ramped volume scaling
  75.         Time-stamped playback
  76.    "Audiopaths":  a powerful and easy way to use the DirectMusic DLS2 synthesizer 
  77.    for sound effects programming.
  78.         Submixing of audio prior to 3D processing (by DLS2 synthesizer)
  79.         Automatic streaming and ACM compression (ADPCM, etc.)
  80.    Composition enhancements
  81.    Audio Scripting
  82.  
  83. We also think you will want to look at using the DLS2 synthesizer as your 
  84. main sound effects engine.  The DLS2 synthesizer is accessed primarily through 
  85. the DirectMusic API's.  Please do not let the word, "Music" mislead you; the 
  86. DirectX 8.0 DirectMusic API's have been enhanced *specifically* for sound effects
  87. playback.  The new DirectMusic API's that are designed to support sound effects
  88. refer to audiopaths. Please investigate audiopaths; they provide a lot of
  89. cool features for sound effects.  For example, if you have multiple sounds 
  90. that need to come from the same 3d location, you can pre-mix them (using Audiopaths) 
  91. and use only one 3d hardware buffer to play them.
  92.  
  93. Parameter Validation:
  94. DirectSound in particular has some greater parameter validation in place
  95. when the DirectSound8 interfaces are used.
  96.  
  97. -Waveformats are more tightly parsed
  98. -You can no longer create a DirectSoundBuffer with both CTRL_3D and CTRL_PAN set
  99. -You can no longer create a DirectSoundBuffer with CTRL_3D set and a wave format
  100. with more than 1 channel.  I.e. Only mono buffers may be created with CTRL_3D.
  101.  
  102. Scripting is very exciting.  It puts much of the control over the audio 
  103. implementation of the game into the hands of the sound designer.  Using 
  104. scripts, audio designers can change implementations, make the music 'magically' 
  105. interactive, and play different sound effects based on in-game variables.  
  106. It also drastically shortens the edit-integrate-listen cycle.  This should
  107. result in improved sound effects and music, with much less game-programmer 
  108. time required.
  109.  
  110. There are sections in the documentation on a new FullDuplex interface and
  111. "Capture effects."  These interfaces are not currently supported.
  112.  
  113. If you are using DirectPlayVoice, you should use those interfaces.  If your
  114. application requires audio capture outside of DirectPlayVoice, 
  115. you should use the existing DirectSoundCapture interfaces.
  116.  
  117.  
  118. Direct3D
  119. ========
  120.  
  121. Migration of DirectDraw into Direct3D:
  122.  
  123. In DirectX 8.0, DirectDraw« is fully integrated into Microsoft Direct3D
  124. to enable drastically simplified application initialization, improved data 
  125. allocation and management performance, and reduced memory footprint. 
  126. The new Direct3D infrastructure provides the services that are called 
  127. at relatively low frequency.  These services comprise:
  128.  
  129. - Creation of Direct3D
  130. - Creation of resources (textures, vertex buffers etc)
  131. - Display mode selection
  132. - Presentation of rendered images to the display
  133.  
  134. New Graphics Features for DirectX 8.0 are:
  135.  
  136. Parallel vertex input streams for more flexible mapping to dynamic 
  137. application data structures. Programmable vertex processing language 
  138. enables programmers to write hardware shaders for:
  139.  
  140. - Morphing/tweening animation
  141. - Matrix palette skinning
  142. - User-defined lighting models
  143. - General environment mapping
  144. - Procedural geometry
  145. - Any other developer-defined algorithm
  146.  
  147. Programmable Pixel processing language enables programmers to write 
  148. hardware shaders for:
  149.  
  150. - Per-pixel lighting/bump mapping
  151. - Per-pixel environment mapping
  152. - Any other developer-defined algorithm
  153.  
  154. MultiSample Rendering support enables:
  155.  
  156. - Full-scene antialiasing
  157. - Multisample effects such as motion blur, depth-of-field, etc.
  158.  
  159. Point Sprites enable:
  160.  
  161. - High-performance rendering of particle systems
  162.  
  163. 3-D Volume textures enable:
  164.  
  165. - Range-attenuation in per-pixel lighting
  166. - Volume atmospheric effects
  167. - Easy texturing of very complex geometry
  168.  
  169. Higher-Order Primitive Support:
  170.  
  171. - For enhancing the appearance of 3-D content
  172. - Facilitating mapping of content from major 3-D authoring tools
  173.  
  174. Higher-Level Technologies:
  175.  
  176. - 3-D content creation tool plugins for export into Direct3D of skinned 
  177.   meshes using a variety of Direct3D techniques such as, multi-resolution 
  178.   LOD geometry, and higher order surface data.
  179.  
  180. Direct3D Feature Notes:
  181.  
  182. No significant API changes are contemplated beyond this point.  
  183. All implemented features have been tested individually 
  184. to some extent, but they have not been tested in exhaustive combinations 
  185. yet.  Many features in DirectX 8.0 are awaiting new hardware, however 
  186. there is at least one implementation available for each of the features 
  187. shipped:
  188.  
  189. - Programmable vertex shaders are supported on the host CPU. On CPUs they 
  190.   will operate with performance comparable to HW implementations and can be 
  191.   used immediately for DirectX 8.0 prototyping and development. 
  192. - Programmable pixel shaders are supported on the host CPU using refrast 
  193.   only. These can be used for prototyping DirectX 8.0 shaders for use when 
  194.   hardware ships. 
  195. - Parallel DMA data input is supported on refrast and the SW geometry pipeline.
  196. - Point Sprites are supported in refrast, software T&L pipeline, and should
  197.   be supported in a prototype DirectX 8.0 driver from at least one hardware 
  198.   manufacturer.
  199. - Volume Textures are supported in refrast. 
  200. - Multisample rendering is supported in refrast and future hardware. 
  201. - Higher-Order Primitives are supported in refrast and via D3DX utilities.  
  202.  
  203. D3DX
  204. ====
  205.  
  206. Debug Binaries for D3DX:
  207.  
  208. The D3DX library is a static library. However, to help debugging, we also 
  209. have a debug only dynamic library of D3DX in DirectX 8.0. To use this, link 
  210. with the d3dx8d.lib which is an import lib corresponding to the D3DX8D.DLL. 
  211. If you are reporting a bug and sending Microsoft an example that reproduces 
  212. that behavior, please make sure the executable is linked to the dynamic debug 
  213. library.
  214.  
  215. The dynamic debug d3dx8 library is for debugging only and is not intended 
  216. for use of shipping applications. D3DX8D.DLL is installed as part of the 
  217. DirectX 8.0 SDK setup, not as part of the redistributable runtime setup. 
  218. This will not be available as part of future operating systems.
  219.  
  220. If apps want to statically link to the debug d3dx8 library they need to 
  221. link to d3dx8dt.lib. To statically link to a retail d3dx8 library please 
  222. link to d3dx8.lib.
  223.  
  224. The D3DX Effect Framework
  225.  
  226. The D3DX effect framework allows you to define shading effects using a text 
  227. file that describes the various techniques of implementing an effect. For 
  228. an example of an effect file see water.sha in the C samples media directory.
  229.  
  230.  
  231. DirectInput
  232. ===========
  233.  
  234. DirectInput for DirectX 8.0 features a major addition, the DirectInput 
  235. Mapper. The Mapper makes it possible for applications to code to their 
  236. in-game actions, without the effort of figuring out the actions represented 
  237. on the device itself. Additionally, the Mapper makes user configuration 
  238. of devices much simpler by offering a default configuration UI. 
  239.  
  240. DIPROP_KEYNAME is supported by the IDirectInputDevice8::GetProperty 
  241. method. DIPROP_KEYNAME retrieves the localized key name, in the form 
  242. of a DIPROPSTRING, from a DirectInput DIK_* value.
  243.  
  244. DIPROP_SCANCODE is supported by the IDirectInputDevice8::GetProperty 
  245. method. DIPROP_KEYNAME retrieves the device scancode, in the form of a 
  246. DIPROPDWORD, from a DirectInput DIK_* value.  
  247.  
  248.  
  249. DirectPlay
  250. ==========
  251.  
  252. DirectPlay has been completely rewritten in DirectX 8.0 to provide the 
  253. robust scalability required to build high performance, massively 
  254. scaleable network games. With version 8.0, DirectPlay also provides 
  255. voice communication via the DirectPlay Voice API.
  256.  
  257. Note: In these release notes the phrases "DirectPlay4", "DirectPlay4 
  258. interface" or "DirectPlay4 session" are used to mean the IDirectPlay4 
  259. interface or a session hosted using the IDirectPlay4 interface, even 
  260. if that interface or session is implemented using the dlls that are 
  261. part of DirectX 8.0. "DirectPlay8", "DirectPlay8 interface", and 
  262. "DirectPlay8 session" mean the IDirectPlay8... family of interfaces,
  263. or a session hosted using the IDirectPlay8... family of interfaces.
  264.  
  265. Since DirectPlay8 has been completely re-written from the ground up, 
  266. the DirectPlay8 interfaces are not extensions of the existing 
  267. DirectPlay4 interfaces. i.e. the DirectPlay8 interfaces do not 
  268. inherit from the DirectPlay4 interfaces in the object oriented sense.
  269.  
  270. Also, DirectPlay8 sessions are not network compatible with DirectPlay4
  271. sessions.
  272.  
  273. Note that the DirectPlay4 interfaces are still present in DirectPlay8
  274. and are still compatible with previous versions of DirectPlay. So games
  275. written for DirectPlay4 will still run on systems with DirectX 8.0 
  276. installed.
  277.  
  278. To enable maximum scalability, DirectPlay8 uses a callback model. All
  279. indications from DirectPlay8 are delivered to the application via an
  280. application supplied callback function. Therefore DirectPlay can indicate 
  281. multiple events to the application in parallel on different threads.
  282.  
  283. Additionally, performance critical operations such as Send and Receive 
  284. can be performed without copying data, and without thread switching. 
  285.  
  286. This programming model allows DirectPlay applications to achieve maximum 
  287. possible performance and scalability on both single-processor and 
  288. multi-processor hardware.  
  289.  
  290. DirectPlay8 also adds:
  291.   - Better support for NATs, Firewalls, and Proxy Servers
  292.   - Application defined payloads on session enumerations and replies
  293.   - Revised addressing scheme that is URL ruled based designed to be human 
  294.     readable and portable
  295.   - The use of I/O completion ports in Windows 2000
  296.   - Improved ease of use through the removal of obtuse services, for example 
  297.     groups within groups
  298.  
  299. The DirectPlay Voice interfaces allow you to quickly and easily establish 
  300. voice communications over an existing DirectPlay8 or DirectPlay4 session. 
  301.  
  302. DirectPlay Voice provides the following features:
  303.   - Peer to peer, forwarding server, and mixing server voice topologies
  304.   - A variety of codecs from 1.2kbit/sec to 64kbit/sec, that can be used 
  305.     royalty free in DirectPlay Voice.
  306.   - Voice detection to automatically trigger voice transmission
  307.   - Automatic gain control to automatically adjust the recording volume level
  308.   - Adaptive queuing that provides a smooth speech stream with minimum latency
  309.     over different and changing network conditions
  310.   - Integration with DirectSound & DirectSoundCapture
  311.   - Sound Hardware Test wizard
  312.   - Support for IDirectPlay8 and IDirectPlay4 transport sessions
  313.  
  314. DirectPlay8 still has all the benefits of previous versions of DirectPlay, 
  315. including:
  316.   - session setup and teardown
  317.   - session discovery
  318.   - application launching
  319.   - player management
  320.   - group management
  321.   - client/server and peer to peer operation
  322.   - peer to peer host migration
  323.   - bandwidth throttling protocol
  324.  
  325.  
  326. DirectShow
  327. ==========
  328.  
  329. DirectX 8.0 marks the first release that DirectShow has been part of the
  330. core DirectX redistribution. This means that for the first time,
  331. applications using DirectShow need not install a separate redist, and 
  332. current DirectX users can now take advantage of DirectShow in their
  333. applications. Adding to the existing capabilities for audio and video
  334. playback and capture that DirectShow provided, this new release also
  335. provides the following new features:
  336.  
  337. Windows Media Format Support:  Two new filters enable DirectShow applications
  338. to read and write files in Windows Media Format. The ASF Reader filter 
  339. reads and parses Windows Media Format files. The ASF File Writer filter 
  340. writes Windows Media Format files; it also does the necessary multiplexing 
  341. and compressing. 
  342.  
  343. DirectShow Editing Services (DES):  This is a complete API for timeline and
  344. switching services built on top of DirectShow. This API implements the
  345. core of non-linear editing services, and allows for the creation of
  346. composite media from a variable number of source audio and video streams. 
  347. By allowing real-time effects and transitions, true "on-the-fly" source 
  348. switching, run-time compositing, run-time seeking, and graph management,
  349. DES provides a powerful high-level way to use DirectShow, while
  350. still allowing applications to access lower-level DirectShow functions.
  351. DES replaces cutlists, which are no longer supported.
  352.  
  353. New DVD Support:  Two new interfaces, IDVDControl2 and IDVDInfo2, greatly expand
  354. the functionality of the DVD Navigator. The new MSWebDVD ActiveX« control 
  355. makes this functionality available to script-based applications. 
  356. New DVD features include: Karaoke multichannel audio support, audio volume 
  357. control through IBasicAudio, support for frame stepping and frame-accurate 
  358. seeking, simplified access to DVD text information strings, and improved support 
  359. for parental management controls. 
  360.  
  361. DirectX Media Objects:  DirectX Media Objects (DMOs) are a new way to write 
  362. data-streaming components. Like DirectShow filters, DMOs take input data and use 
  363. it to produce output data. However, the application programming interfaces 
  364. (APIs) for DMOs are much simpler than the corresponding APIs for DirectShow. As 
  365. a result, DMOs are easier to create, test, and use than DirectShow filters.
  366. A wrapper filter is provided to allow DMOs to be used within DirectShow. 
  367.  
  368. Media Parameters:   Media parameters are a new set of APIs that support run-time 
  369. changes to an object's properties. They offer precise control over properties 
  370. that change rapidly and require both high performance and repeatability. They 
  371. enable a property to follow an exact curve, such as a sine wave or 
  372. inverse-square curve, in real time.
  373.  
  374. New Filters:
  375. - MJPEG Decompressor: Decodes a video stream from motion JPEG to uncompressed video 
  376. - MJPEG Compressor: Compresses an uncompressed video stream using 
  377.      motion JPEG compression. 
  378. - Null Renderer: Discards samples without displaying or rendering the sample data.
  379.      Applications can use this filter to discard data from a stream. 
  380. - Sample Grabber: Retrieves media samples as they move through the filter graph.
  381.      Applications can use this filter to obtain poster frames or other media data. 
  382.  
  383. Dynamic Graph Building:  DirectShow applications can now change the graph 
  384. while it is still playing. This allows new audio or video streams to be added 
  385. to a graph, effects to be inserted in the graph without any visible gap in the
  386. playback, and chains of filters to be paused and run independent of the main graph.
  387.  
  388. Push Model Clock Support:  This allows for improved synchronization between
  389. audio and video streams. The default audio renderer can now be slaved to
  390. another clock, allowing for applications to deal with timing differences
  391. between clocks on sound cards and capture devices, among other scenarios.
  392.  
  393. Graph Edit enhancements:  GraphEdit now displays filter registration information
  394. in the Insert Filters dialog and allows you to spy on existing graphs in
  395. external processes (if those processes register their graphs).
  396.  
  397.  
  398. DirectMusic Producer
  399. ====================
  400.  
  401. This version of Producer features many new features to aid in both 
  402. authoring and auditioning of DirectMusic content.  These features include 
  403. authoring support for audio path configurations, which manages pchannel 
  404. and synth assignments as well as effects routing, the new DLS level 2 
  405. format (which includes stereo waves, layering of regions, and filtering) 
  406. and a new API for scripting, which allows composers and sound designers 
  407. to integrate audio content directly into an application.  Other major 
  408. features include new track types, including a wave track, a script 
  409. track, a secondary segment trigger track and a melody track, which 
  410. integrates a variable approach with greater control of form. 
  411.  
  412.  
  413. DirectX Control Panel
  414. =====================
  415. Developers can now toggle between DirectX retail and debug system components 
  416. through the DirectX Control Panel. 
  417.  
  418.  
  419. Broadcast Driver Architecture
  420. ======================
  421.  
  422. Broadcast Driver Architecture (BDA) is a set of Ring 0 and Ring 3 software 
  423. components based on the DirectShow« architecture for streaming multimedia 
  424. broadcast content. BDA is also a specification that defines how custom 
  425. components, such as filters for parsing private data, interface with the 
  426. rest of the system. Digital-TV applications can use the Ring 3 components 
  427. to build filter graphs, implement a single model for tuning across all 
  428. network types, automate the storage and retrieval of electronic program 
  429. guide information, and capture IP data including ATVEF announcements, 
  430. triggers, and packages.
  431.  
  432. __________________________________________________________________
  433.  
  434.  
  435. CD LAYOUT:
  436.  
  437.  
  438. The following is a brief description of the directories found with a complete
  439. DirectX 8.0 SDK download.  Depending on options specified during
  440. installation, some of these directories can be installed on your hard drive.
  441.  
  442. \Bin
  443.     High level DirectX applications & tools.
  444.     All can be accessed from the Start menu if "Utilities" are installed. 
  445.  
  446.     Note: Japanese systems will require Internet Explorer 5.0 (IE5) for
  447.     the DirectX Control Panel to display properly.  IE5 can be found at
  448.     http://www.microsoft.com/windows/ie/default.htm.
  449.      
  450.  
  451. \Doc
  452.     Contains reference documentation for the DirectX 8.0 APIs.  
  453.     This Documentation must be viewed with Windows HTMLHelp.  
  454.  
  455.     Note:  The HTMLHelp viewer requires a minimum installation of 
  456.     Internet Explorer 5.0 (IE5).  IE5 can be found at
  457.     http://www.microsoft.com/windows/ie/default.htm.
  458.  
  459. \Essentls
  460.     \DMusProd (Direct Music Producer)
  461.        - DirectMusic Producer is the authoring tool for Direct Music.  It 
  462.          allows composers and sound designers to use the interactive and 
  463.          variable resources of DirectMusic along with the consistent sound 
  464.          performance of DLS.  DirectX Audio Scripting can also be authored 
  465.          and tested within Producer.  The DirectMusic Producer setup program 
  466.          and all files are located here.
  467.  
  468. \Extras
  469.    \Direct3D
  470.       - Skinning exporter tools
  471.    \DirectShow
  472.       - Contains the DVDBoilerplate.  See readme.txt within the directory 
  473.         for more information.
  474.       - Contains additional media that can be used with DirectShow and the
  475.         DirectShow Editing Services (DES) interfaces.
  476.    \Documentation
  477.       - Contains DirectX 7 HTMLHelp Documentation for English and Japanese.
  478.       - Also contains DirectX 7 Documentation in Microsoft Word format
  479.         (English only).
  480.    \GameVoice
  481.       - Contains the installer for the English Version of Game Voice Share, 
  482.         which includes voice communication and game launching functionality. 
  483.         For more information on Game Voice, visit http://www.gamevoice.com.
  484.    \Symbols
  485.       - Contains directories of DirectX 8.0 symbol files for 
  486.         Win2000 and Win9x (retail and debug for each).
  487.  
  488. \Include
  489.     contains DirectX 8.0 include files for DirectX core components.
  490.  
  491. \Lib
  492.     contains DirectX 8.0 library files for DirectX core components.
  493.  
  494. \License
  495.     Text versions of the DirectX SDK and End User License Agreements and 
  496.     the Redistributable License Agreement.
  497.  
  498. \Redist
  499.     Redistributable versions of the DirectX 8.0 Runtime.  
  500.  
  501. \Samples
  502.     Contains all sample code and sample binaries.   Most samples can be
  503.     accessed from the Start menu when installed via the downloaded 
  504.     InstallShield setup.
  505.  
  506. \SDKDev
  507.     This directory contains the runtime installs that are installed with 
  508.     the SDK.  They are English only and contain both debug and retail 
  509.     DirectX 8.0 system components that can be "switched" between retail 
  510.     and debug without re-installing.  For the DirectX 8.0 components, 
  511.     retail or debug can be switched via the DirectX Control Panel.
  512.  
  513.     The \retail folder contains the setup that will install non-DirectX 8.0
  514.     retail components while the \debug folder will install all debug 
  515.     components.  Both install DX8 retail and debug components.  These are 
  516.     the only components that can be "switched".
  517.  
  518. __________________________________________________________________
  519.  
  520.  
  521. DIRECTX 8.0 SDK NOTES AND KNOWN ISSUES
  522.   
  523.  
  524. DirectX Audio (DirectSound & DirectMusic)
  525. =========================================
  526.  
  527. Below are some known issues with DirectMusic and DirectSound in 
  528. DirectX 8.0 that you may encounter.  
  529.  
  530. - ParamEQ and Distortion effects have parameters that are sampling rate 
  531.   dependent.
  532.   Setting these params to a value that is out of range for that sampling 
  533.   rate will result in:
  534.      Distortion:  Parameters are 'clipped' at the valid range for the 
  535.                   sampling rate
  536.      ParamEQ:  If the frequency is greater than can be supported by the 
  537.                sampling rate, the effect is disabled-  In the DirectMusic 
  538.                3DAudio sample, there may be some breakup if Doppler is set > 4
  539. - DirectSound buffers that are created with DSBCAPS_CTRLFX must be at 
  540.   least 100ms in length.
  541.  
  542.  
  543. Direct3D
  544. ========
  545.  
  546. - All executables compiled against earlier DirectX 8.0 betas must be 
  547.   recompiled with this version to run.
  548. - Alt-enter in the samples results in texture corruption for some drivers. 
  549.   Workaround: Get newer drivers.
  550. - The value for MaxPrimitiveCount defines the max number of vertices
  551.   as well as the max number of primitives that can be sent to a 
  552.   DrawIndexedPrimitive or DrawPrimitive call.
  553. - A bug in the Windows2000 kernel causes an issue upon mode-switches for 
  554.   AGP surfaces locked with the NOSYSLOCK flag. The contents of any such 
  555.   surface may  become inaccessible for the duration of the NOSYSLOCK lock 
  556.   if a mode-switch happens after the Lock and before the Unlock. This happens 
  557.   for both DX7 and DX8 applications. The most likely scenario is a DX8 
  558.   application running on a driver that supports hardware vertex buffers, 
  559.   but using software vertex processing (fixed or shader). Under these 
  560.   scenarios, Direct3D might keep a NOSYSLOCK lock on an AGP vertex buffer. 
  561.   If the user alt-tabs out of the application or does anything else to cause 
  562.   a mode-change, the thread writing into the vertex buffer may fault. There 
  563.   is no known workaround. Microsoft will fix this issue in the next version 
  564.   of Windows and will attempt to ship a fix in a future Windows2000 
  565.   Service Pack.
  566. - A bug in the DX6 and DX7 implementation of 
  567.   IDirectDraw*::GetDeviceIdentifier causes the DirectDraw runtime to write 
  568.   four extra bytes past the end of the structure. To work around this issue, 
  569.   allocate an extra four bytes at the end of your DDDEVICEIDENTIFIER* 
  570.   structure. This bug does not exist in the IDirect3D8::GetAdapterIdentifier 
  571.   version.
  572. - The Direct3D8 run-time exhibits the following behvior on all Windows NT 
  573.   platforms. Run a full-screen Direct3D8 application, press Ctrl-Alt-Del, 
  574.   press ESC. The desktop will appear, but the display card will still be in 
  575.   the application's resolution, not the proper desktop resolution. (The user 
  576.   may alt-tab back to the application at this time.) A fix for this will be 
  577.   in the next release of DirectX, and the problem will be fixed in the next 
  578.   version of Windows NT. Developers are urged NOT to try to work-around this 
  579.   problem nor code their own solutions, since such solutions are very likely 
  580.   to interact poorly with our own fix.
  581. - Terminating a process with un-released vertex buffers on Win9x DX7 APIs 
  582.   can cause instability. This is caused by a bug in the automatic per-process 
  583.   cleanup code in DirectDraw which causes VBs to be leaked permanently (until 
  584.   reboot) on all Win9x platforms: Windows 95, 98, Millenirum. Applications 
  585.   should be carefully coded to ensure all Vertex Buffers are correctly released
  586.   before exiting the process.
  587. - Applications should be careful when responding to the WM_MOUSEMOVE message. 
  588.   If the application calls IDirect3DDevice8::SetCursorPosition with a coordinate 
  589.   that is outside the current display mode size, then the Direct3D run-time may 
  590.   cause another WM_MOUSEMOVE, which may cause the application to call 
  591.   IDirect3DDevice8::SetCursorPosition again, resulting in an infinite loop. 
  592.   The application should either be careful not to call 
  593.   IDirect3DDevice8::SetCursorPosition  with invalid positions, or should never 
  594.   call IDirect3DDevice8::SetCursorPosition  with repeated positions.
  595.   One common scenario for generating invalid mouse cursors is to remove the 
  596.   menu style from a window incorrectly when going full-screen. The SDK sample 
  597.   applications incorrectly use SetWindowLong to remove the menu bar from the 
  598.   window before going fullscreen. The correct technique is to call 
  599.   "hOldMenu = SetMenu(hWnd, NULL)'" before going fullscreen, and then 
  600.   "SetMenu(hWnd, hOldMenu);" before returning to windowed mode.
  601. - When using the function ValidateDevice on Win9x the return value will be 
  602.   DD_OK if it is successful.
  603.  
  604. Point Sprites:  
  605.  
  606. - When using the Direct3D software T&L pipeline (device created with 
  607.   D3DCREATE_SOFTWARE_VERTEXPROCESSING flag set or with 
  608.   D3DCREATE_MIXED_VERTEXPROCESSING flag and software vertex processing 
  609.   toggled on), then point sprite support is guaranteed.  When using 
  610.   hardware vertex processing, some older drivers may not support point 
  611.   sprites, indicated by d3dcaps->MaxPointSize = 0.  Upgrading to a DX8 
  612.   driver for these parts will enable them.
  613.  
  614.     To ensure consistent behavior for point sprite support, set
  615.     D3DRS_CULLMODE = D3DCULL_NONE 
  616.     D3DRS_FILLMODE = D3DFILL_SOLID
  617.     when rendering point sprites.
  618.  
  619. Vertex Shaders:  
  620.  
  621. - Two vertex shader instructions may produce implementation-specific 
  622.   results for out-of-range inputs, such as the log of a negative number.
  623.   The log, logp and y- component of the lit instruction macro should not
  624.   be passed negative values for this reason.
  625.  
  626. Driver/Device Specific Issues:
  627.  
  628. - The Windows Millennium driver for the ATI Rage 128 fails (draws nothing) 
  629.   when using vertex shaders which output more than two texture coordinates 
  630.   per texture coordinate set when the D3DTTFF_PROJECTED bit is not set.
  631.  
  632. D3DX
  633. ====
  634.  
  635. - This product includes software developed by the University of California,
  636.   Berkeley and its contributors D3DX Mesh APIs.
  637. - The ID3DXSkinMesh interfaces currently only support 16-bit mesh. 32-bit 
  638.   mesh support is not yet implemented.
  639. - All other D3DX Mesh interfaces do support 32-bit meshes even though the 
  640.   docs say they do not.
  641. - D3XGenerateAdjacency currently ignored the epsilon value and uses 0.0f 
  642.   as the epsilon.
  643. - In D3DXMatrixPerspectiveFOV, the aspect ratio is x/y instead of y/x.
  644.  
  645.  
  646. DirectInput
  647. ===========
  648.  
  649.  - There is a bug in DirectInput which causes the Logitech Wingman Formula wheel to 
  650.    report pedal data on the wrong axes.  
  651.  - There are some know issues that can cause mouse behavior to be very sluggish 
  652.    when debugging using DirectInput.   There are two reg files that will
  653.    assist with this issue.  They are:
  654.       Mouse and Keyboard Emulation On.reg
  655.       Mouse and Keyboard Emulation Off.reg
  656.    "Mouse and Keyboard Emulation On.reg" will force all mouse calls through 
  657.    dinput emulation, thus making the mouse perform properly inside the debugger.  
  658.    "Mouse and Keyboard Emulation Off.reg" will turn off force emulation.
  659.    Only use these keys on development machines, they are not intended to be 
  660.    redisted as they are a global setting that effects all Direct Input clients.
  661.  - The following devices are supported with device images in this release.    
  662.       + ACT LABS RS
  663.       + ACT LABS Force RS
  664.       + Gravis Xterminator Dual Control    
  665.       + Gravis Blackhawk Digital    
  666.       + Gravis Gamepad Pro USB
  667.       + Gravis Gamepad Pro
  668.       + Gravis Eliminator Gamepad Pro
  669.       + Gravis Xterminator Digital GamePad
  670.       + InterAct/3dfx SV-262A HammerHead Fx
  671.       + InterAct Axispad
  672.       + InterAct SV-251 Raider Digital
  673.       + Logitech WingMan Formula (Yellow)
  674.       + Logitech WingMan Extreme Digital 3D
  675.       + Logitech WingMan Gamepad Black (USB)
  676.       + Logitech Wingman Rally Force USB
  677.       + Logitech Wingman Rumblepad
  678.       + Microsoft Sidewinder Gamepad Pro
  679.       + Microsoft SideWinder Force Feedback Wheel
  680.       + Microsoft SideWinder Force Feedback Pro
  681.       + Microsoft Sidewinder FF 2
  682.       + Microsoft Sidewinder Dual Strike
  683.       + Microsoft Sidewinder Precision 2
  684.       + Microsoft Sidewinder Plug and Play
  685.       + Microsoft SideWinder Game Pad
  686.       + Microsoft SideWinder Precision Racing Wheel
  687.       + Microsoft SideWinder Precision Pro
  688.       + Microsoft SideWinder Freestyle Pro
  689.       + Microsoft SideWinder 3D Pro
  690.  
  691.  
  692. DirectPlay
  693. ==========
  694.  
  695. The following are known issues with DirectPlay in this release that 
  696. you may need to work around.
  697.  
  698. - Note that the dwTimeoutUntilKeepAlive member of the DPN_CAPS structure 
  699.   specifies a minimum value. The first keepalive packet may be sent as 
  700.   much as 30 seconds later than the minimum value specified in this 
  701.   member. For example, if you set dwTimeoutUntilKeepAlive to 60000 
  702.   (60 seconds) the first keepalive packet may be sent anywhere from 
  703.   60 to 90 seconds after the last normal packet was sent.
  704. - The "debug output level" slider on the DirectPlay tab of the DirectX 
  705.   control panel is not functional. For instructions on how to change the 
  706.   debug output level, see the "dp8log.txt" file in the 
  707.   [sdkroot]\bin\DXUtils directory.
  708. - To use DirectPlay Voice in full duplex mode, we recommend that you update
  709.   to the latest drivers for your audio device. Some older drivers do not
  710.   provide reliable full duplex performance.
  711. - If you connect to a location that you have enumerated, the enumeration 
  712.   will be canceled automatically for you.  If you attempt to do a cancel 
  713.   asynchronous operation on this enum after the connect is completed you 
  714.   will get back DPNERR_USERCANCEL error code.  Be aware that this is the
  715.   expected behavior and that you should not exit with an error condition.
  716. - The modem service provider implementation for DirectPlay8 requires 
  717.   TAPI 2.0 functionality.  TAPI 2.0 is available as an installed component 
  718.   on Windows 98 and later, but not on Windows 95.  If your application 
  719.   requires modem functionality on the Windows 95 platform, the TAPI 2.0 
  720.   patch for Windows 95 can be obtained on the Microsoft FTP site 
  721.   (ftp://ftp.microsoft.com/developr/TAPI/tapi2195.zip) and distributed 
  722.   with you application.
  723.  
  724. Notes on NATs (Network Address Translators):
  725.  
  726. - There are many different NAT solutions available, some of which are
  727.   different from others. We have attempted to document some of the issues
  728.   with various NAT solutions, but is not comprehensive.  Please refer to 
  729.   the DirectX Developer Page at http://msdn.microsoft.com/directx for 
  730.   further information on these issues.
  731.  
  732. DirectPlay Voice codecs via Windows ACM (Audio Compression Manager):
  733.  
  734. - DirectPlay Voice uses the following codecs via the Windows ACM:
  735.    - Microsoft ADPCM
  736.    - Microsoft GSM
  737.    - DSP Group Truespeech
  738. - Installation of these codecs with Windows is optional. If they 
  739.   are not installed, then one or more of the compression types in 
  740.   DirectPlay Voice will not function. If the application attempts 
  741.   to use a compression type that is not functional due to a missing 
  742.   ACM codec, it will receive the DVERR_COMPRESSIONNOTSUPPORTED 
  743.   return code.
  744. - On Windows 2000, the user can install these codecs through the 
  745.   Add/Remove Hardware wizard. The user should select 
  746.   "Add/Troubleshoot a device". When a list of hardware is presented, 
  747.   the user should select "Add a new device", then on the next 
  748.   page select "No, I want to select the hardware from a list". 
  749.   This will bring up a list of hardware. Select "Sound, video, and 
  750.   game controllers". The "Audio Codecs" item is listed under 
  751.   "(Standard system devices)". 
  752. - On Windows 9x, the user can install these codecs through the 
  753.   Add New Hardware wizard. When prompted, the user should select 
  754.   "No, I want to select the hardware from a list". In the list of 
  755.   device types, codecs are listed under "Sound video and game 
  756.   controllers". The codecs are listed under two manufacturers. 
  757.   The ADPCM and GSM codecs are listed under "Microsoft Audio 
  758.   Codecs" and the Truespeech codec is listed under "DSP Group".
  759.  
  760.  
  761. DirectShow
  762. ==========
  763.  
  764. - The GraphEdit Tool (and some of the DirectShow samples) requires MFC42.DLL
  765.   to be present on the system.  The DirectX SDK Setup does not install this 
  766.   DLL.  This will only be an issue on Windows 95 systems and will require you
  767.   to install Microsoft Visual C++ to acquire the DLL.
  768. - Application development using the DirectShow base classes libraries requires
  769.   installation of the DirectShow samples.  The source code for the base classes
  770.   is now included as a sample project, rather than as a separate Classes\Base 
  771.   directory.  You must compile these base classes to generate strmbase.lib and 
  772.   strmbasd.lib, which are no longer installed as binary files.   If you are
  773.   linking with strmbase.lib or strmbasd.lib with your own application, be sure
  774.   to build and link with the updated DirectX 8 libraries (instead of the older
  775.   libraries that are installed with Visual C++ or the Microsoft Platform SDK).
  776. - The samples included with the SDK are configured to compile and link with 
  777.   the updated libraries, which are generated by building the BaseClasses project.  
  778.   Further build instructions are provided in:
  779.       <DXSDKInstallFolder>\samples\Multimedia\DirectShow\readme.txt.
  780. - The <streams.h> header file, along with many other DirectShow-specific header
  781.   files, is now located in the DirectShow samples BaseClasses directory, 
  782.   which includes the BaseClasses source code and header files.  You must add 
  783.   the BaseClasses directory to the beginning of your project's include path 
  784.   settings in order for Visual C++ to find all of the updated header files.
  785. - To use the Teletext Decoder Fonts that are shipped with DX8, make sure that
  786.   the WST_* fonts are installed by examining the \windows\fonts directory.
  787. - There is a known problem with the MP3 decoder filter when used with
  788.   Audio Effects DMOs.  If you add an audio effect DMO (like WavesReverb, Echo,
  789.   or Flange) to an existing MP3 filter graph, the audio could be played back
  790.   at double speed.  The problem would occur whenever the MP3 decoder is connected 
  791.   to a downstream audio effect dmo (via the dmo filter wrapper) that offers a 
  792.   default audio input type which doesn't match the native format of the 
  793.   uncompressed MP3 stream.  For example, if you render a 22kHz MP3 file and 
  794.   add a DMO Audio effect, the MP3 filter could misinterpret the input type as
  795.   being 44kHz when it is actually 22kHz.  This would not be a problem for 44kHz 
  796.   MP3 files.  This issue will be fixed in a future release.
  797. - If you have the SDK on CD-ROM, the Extras\DirectShow\Media  directory 
  798.   contains additional media that can be used with DirectShow and the DirectShow
  799.   Editing Services (DES) interfaces.  We have included DV-encoded AVI videos, 
  800.   larger MPEG videos, and higher-quality JPEG images.  Since the DV files are 
  801.   very large, you should copy them to your hard disk before playing them to 
  802.   ensure the best performance.
  803. - Remote graph spying with GraphEdit works only on Windows 2000.
  804. - The DirectShow Editing Services (DES) Color Generator source filter may 
  805.   generate blue or green components incorrectly if they have small values.  
  806.   For best results, use solid primary colors or set Blue and Green 
  807.   components to values of either 0xFF or 0x00.
  808.  
  809.  
  810. Broadcast Driver Architecture
  811. ======================
  812.  
  813. Known issues with Broadcast IP Data Reception under Windows 2000:
  814.  
  815. - After rebooting a Windows 2000 system with a BDA receiver card installed,
  816.   the BDA NDIS IP NIC is not immediately active.  It becomes active only 
  817.   when an application inserts the BDA IPSink filter into a graph and connects
  818.   its input pin.  Once activated by connecting the IPSink filter's input pin,
  819.   it takes 20 to 30 seconds for the BDA NDIS IP NIC to be assigned an IP 
  820.   address.  The address assigned will be a Net 10 address.  Once activated, 
  821.   the BDA NDIS IP NIC will remain active until the system is rebooted.
  822. - There may be some applications that use the BDA NDIS IP NIC as the default 
  823.   LAN adapter.  These apps will fail if the BDA NDIS IP NIC is active.  To 
  824.   de-activate the BDA NDIS IP NIC, reboot the system and do not run a TV graph 
  825.   or application.
  826.  
  827.  
  828. Documentation
  829. =============
  830.  
  831. - For proper viewing of the DirectX Documentation, install the docs from
  832.   the DirectX 8.0 SDK CD.  Specify a full installation, or if you chose a 
  833.   Custom install, ensure that you've selected Documentation.  
  834. - The known issues with the DirectX 8.0 Documentation are written up in a
  835.   separate file.  You will find these issues listed in the 
  836.   DirectX8_Doc_Readme.txt file found in the <DXSDKCDRoot>\dxf\doc\DirectX8 
  837.   folder.  This file is also installed into the <DXSDKInstallFolder>\doc\DirectX8
  838.   when DirectX8 Documentation is installed.
  839.  
  840.  
  841. Samples 
  842. =======
  843.  
  844. Miscellaneous Issues:
  845.  
  846. - Some samples will compile with errors with the UNICODE flag defined.
  847. - Visual C/C++ 5 compatibility in DirectX 8.0 depends on Service Pack 3 
  848.   for Visual Studio  97. If you see the following errors:
  849.     "fatal error LNK1106: invalid file or disk full: cannot seek to 0x389bc8bf"
  850.     "Internal error during Pass1"
  851.   then you need to upgrade your Visual C/C++ 5 installation. Service packs 
  852.   for Visual Studio can be found at http://msdn.microsoft.com/vstudio/sp/vs97.
  853.  
  854. Direct3D Samples:
  855.  
  856. - There are miscellaneous issues with some display hardware & drivers.
  857.   Please let us know of any problems you encounter and specify whether you
  858.   believe it is sample or driver related.
  859.  
  860. DirectShow Samples:
  861.  
  862. - There are several .XTL sample files in the \media folder.  These files 
  863.   demonstrate some of the functionality available in the DirectShow Editing 
  864.   Services.  You can render these files using the XTLTest C++ sample and 
  865.   the XTLTestVB and DexterVB VisualBasic samples.  All provided XTL files 
  866.   refer to media that ships in the SDK's media directory.  Rendering XTL 
  867.   files is a great way to get an idea of what the new DirectShow Editing 
  868.   Services APIs make possible.  For a simple demo, drag a few of the SDK 
  869.   media directory's sample .XTL files onto the XTLTestVB sample's client area.
  870. - The DirectShow Visual Basic samples demonstrate more of the DES functionality 
  871.   than the C++ samples.  Be sure to run SlideShowVB and TrimmerVB if you are 
  872.   interested in DES.  You can also use the DexterVB ("Dexter Explorer") 
  873.   application as an XTL development/test tool.
  874. - The Texture3D sample is known to fail on some systems (referencing
  875.   invalid memory), for which you may see an error message.  This failure is
  876.   in initialization of D3D.  We recommend updating your video card drivers
  877.   to the most current revision, as that usually resolves the problem.
  878. - The DirectShow IDL files are currently located in the
  879.   \include\DShowIDL directory of the SDK for your convenience. 
  880. - You will be required to build the \BaseClasses libraries before any sample
  881.   that depends on them can be built or executed.  Please review the Readme.Txt 
  882.   file in the DirectShow samples root directory for more information on 
  883.   building the samples.
  884.  
  885.  
  886. DirectX for Visual Basic Samples:
  887.  
  888. - DBMON.exe is a console application which allows the Visual Basic DirectX 
  889.   developer to take advantage of extended output that debug installs of 
  890.   DirectX provide. This application works only under Windows 2000. 
  891.   To use, execute the application. All debug output will be captured and sent 
  892.   to the console window. If you are not seeing debug output, ensure that 
  893.   you have installed the debug version of DirectX, and that you are running 
  894.   Windows 2000.
  895. - DXVB Messenger Server is the server portion of a client/server instant 
  896.   messaging application.  This sample requires the use of ActiveX Data Object
  897.   (ADO) to maintain the data needed.  If you are running Windows 9x, you must 
  898.   have the latest version of ADO installed on your machine to compile or run 
  899.   this sample.  You can install the latest ADO while Visual Basic Professional 
  900.   is being installed or you can download the latest ADO from the web at:
  901.   http://www.microsoft.com/data/ado/.  ADO is installed by default with 
  902.   Visual Basic 6 Enterprise.
  903. - If you are experiencing problems searching for and connecting to sessions 
  904.   using DirectPlay for VisualBasic, you may need to update your system.  
  905.   To update, install DCOM98 from:
  906.       http://download.microsoft.com/msdownload/dcom/98/x86/en/dcom98.exe 
  907.  
  908.  
  909. Other
  910. =====
  911.  
  912. - The DirectDraw "Debug Level" slider in DirectX Control Panel Applet does 
  913.   not function.   Instead use the "Debug Output Level" slider on the Direct3D 
  914.   tab, this will effect both DDraw and D3D8.   Also note that DirectDraw labels
  915.   it's debug spew as coming from "Direct3D8".
  916. - The DirectX runtime will not operate on NEC PC98 systems.  SDK and Runtime 
  917.   installations have been intentionally blocked on this system.
  918. - The DirectX 8.0 runtime requires a Pentium compatible CPU for operation.  
  919.   The DirectX runtime setup will not install on processors that do not report 
  920.   Pentium compatibility.  Some older Cyrix processors, while compatible with 
  921.   the Pentium instruction set, report as x486 processors, and thus do not 
  922.   support installation of the DirectX 8.0 run time.
  923. - When installing the DirectX 8.0 runtime from the DirectX SDK you will 
  924.   notice that the size requirements are inflated from previous DirectX versions.
  925.   For example, if you were only to install a DirectX 8.0 runtime from the 
  926.   DirectX SDK onto a system with low disk space, you would see that at least 
  927.   120 MB is required.  This is because both the retail and debug runtimes are
  928.   included in each of the DirectX SDK runtime installs (this allows developers
  929.   to switch between retail and debug without having to re-install).  However, 
  930.   this inflated size is not true of the redistributable runtimes shipped with
  931.   the SDK.  Redistributable installs will require significantly less disk space.
  932.   While this number is dependent on the disk format (Fat16/32 vs. NTFS) we 
  933.   expect approximately 40 MB of free space is required for uncompression and 
  934.   installation and approximately 15 MB once installed (and this is only true for
  935.   systems with no previous DirectX version installed).  The DirectX Setup API 
  936.   will check for and display error messages when these requirements are not met.
  937. - Windows 95 Japanese Systems will require MS UI Gothic patch for Windows 95 
  938.   or Internet Explorer 5.0 (or after) for the DirectX Control Panel to display 
  939.   properly. MS UI Gothic Patch can be found at 
  940.   http://www.microsoft.com/JAPAN/win95/msgotupd/default.htm and IE5 (or after)
  941.   can be found at http://www.microsoft.com/windows/ie/default.htm.
  942.  
  943. __________________________________________________________________
  944.  
  945.  
  946. COMPILER SUPPORT
  947.  
  948. All DirectX 8.0 SDK samples are developed and compiled with Visual Studio 6.0.  
  949. We have provided Visual Studio 6.0 DSP files for your convenience.  
  950.  
  951. All DirectX 8.0 libraries, with the exception of the DirectShow libraries, should
  952. be compatible with Visual Studio 5.0 SP3 or higher.  
  953.  
  954. __________________________________________________________________
  955.  
  956.  
  957. SPECIAL THANKS
  958.  
  959. Marlin Studios
  960.  
  961. Textures used in the Billboard sample, tree02S.tga, tree01S.tga & tree35S.tga,
  962. are provided courtesy of Marlin Studios (http://www.marlinstudios.com).  
  963. They are provided for use with this sample only and cannot be distributed 
  964. with any application without prior written consent.  
  965.  
  966. Viewpoint Digital, Inc.
  967.  
  968. The model used by the Visual Basic AutoParts sample, engine1.x, is provided 
  969. courtesy of Viewpoint Digital, Inc. (http://www.viewpoint.com).  It is provided 
  970. for use with this sample only and cannot be distributed with any application 
  971. without prior written consent.  V6 Engine Model copyright 1999 Viewpoint 
  972. Digital, Inc..
  973.  
  974. 3DCAFE and Platinum Pictures
  975.  
  976. The model in the Dolphin samples, Dolphin.x, is derived from the model files 
  977. (dolphins.zip) provided courtesy of 3DCAFE and Platinum Pictures  
  978. (http://www.3dcafe.com/).  It is provided for use with this sample only.  
  979. For further terms of use please visit the 3DCAFE site or contact 3DCAFE.
  980.